package com.example.apartment.service;

import com.example.apartment.domain.Admin;
import com.example.apartment.domain.Building;

import java.util.List;

/**
 * 宿舍楼业务层接口
 *
 * @author wuzexin
 * @date 2021/11/2 13:06
 */
public interface BuildingService {

    /**
     * 创建宿舍楼
     *
     * @param admin        管理员用户信息
     * @param buildingName 宿舍楼名字
     * @param floorCount   宿舍楼层数
     * @param roomCount    宿舍楼房间数
     * @return 宿舍楼信息
     */
    Building create(Admin admin, String buildingName, Integer floorCount, Integer roomCount);


    /**
     * 修改宿舍楼信息
     *
     * @param admin           管理员用户信息
     * @param id              宿舍楼id
     * @param newBuildingName 宿舍楼新名字
     * @param newFloorCount   宿舍新楼层数
     * @param newRoomCount    宿舍楼新房间数
     * @return
     */
    Building update(Admin admin, Integer id, String newBuildingName, Integer newFloorCount, Integer newRoomCount);

    /**
     * 删除宿舍楼
     *
     * @param admin 管理员用户信息
     * @param id    宿舍楼id
     */
    void delete(Admin admin, Integer id);

    /**
     * 查询所有宿舍楼信息
     *
     * @param admin
     * @return
     */
    List<Building> select(Admin admin);

    /**
     * 根据id查询宿舍楼
     *
     * @param admin 管理员信息
     * @param id    宿舍楼id
     * @return 宿舍楼信息
     */
    Building selectById(Admin admin, Integer id);
}
